﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QLThuVien
{
    public partial class frThongTinDocGia : Form
    {
        public frThongTinDocGia()
        {
            InitializeComponent();
            close_box();
            load_cb();
        }
        DataSet ds;

        public void close_box()
        {
            tbdiachi.Enabled = false;
            tbgioitinh.Enabled = false;
            tbmadg.Enabled = false;
            tbngaylt.Enabled = false;
            tbngaysinh.Enabled = false;
            tbtendg.Enabled = false;
            cbdt.Enabled = false;
        }

        public void open_box()
        {
            tbdiachi.Enabled = true;
            tbgioitinh.Enabled = true;
            tbmadg.Enabled = true;
            tbngaysinh.Enabled = true;
            tbtendg.Enabled = true;
            cbdt.Enabled = true;
        }

        public void clear_text()
        {
            tbdiachi.Text = "";
            tbgioitinh.Text = "";
            tbmadg.Text = "";
            tbngaylt.Text = "";
            tbngaysinh.Text = "";
            tbtendg.Text = "";
            cbdt.Text = "";
        }
        public void load_cb()
        {
            Truyxuatdulieu txdl = new Truyxuatdulieu();
            SqlDataReader dr = txdl.lay_reader("select TENLOAIDG from LOAIDOCGIA");
            while (dr.Read())
            {
                cbdt.Items.Add(dr[0].ToString());
            }
            KetNoi.closeconnect();
        }

        public void load_thongtin()
        {
            ds = new DataSet();
            Truyxuatdulieu txdl = new Truyxuatdulieu();
            SqlDataAdapter da = new SqlDataAdapter("SELECT DOCGIA.MADOCGIA as 'mã độc giả',DOCGIA.HOTEN as 'họ tên độc giả',LOAIDOCGIA.TENLOAIDG AS 'Đối Tượng',DOCGIA.GIOITINH AS 'Giới Tính',DOCGIA.NGAYSINH as 'Ngày Sinh', DOCGIA.DIACHI as 'Địa Chỉ', THE.NGAYCAP as 'Ngày Lập Thẻ' from DOCGIA,LOAIDOCGIA,THE WHERE DOCGIA.MALOAIDOCGIA=LOAIDOCGIA.MALOAIDOCGIA AND DOCGIA.MADOCGIA=THE.MADOCGIA", KetNoi.scn);
            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        }

        private void frThongTinDocGia_Load(object sender, EventArgs e)
        {
            load_thongtin();
        }
        string mathe;
        private void btthem_Click(object sender, EventArgs e)
        {
            if (btthem.Text == "OK")
            {
                DocGia ls = new DocGia();
                ls.set_madg(tbmadg.Text);
                ls.set_ngaysinh(Convert.ToDateTime(tbngaysinh.Text));
                ls.set_gioitinh(tbgioitinh.Text);
                ls.set_hotendg(tbtendg.Text);
                ls.set_diachi(tbdiachi.Text);
                Truyxuatdulieu txdl = new Truyxuatdulieu();
                SqlDataReader dr = txdl.lay_reader("select *from loaidocgia");
                while (dr.Read())
                {

                    if (Convert.ToString(dr["TENLOAIDG"]) == cbdt.Text)
                    {
                        ls.set_madtdg(Convert.ToString(dr["MALOAIDOCGIA"]));
                    }
                }
                KetNoi.closeconnect();

                KetNoi.setconnect();
                if (cbdt.Text == "") MessageBox.Show("nhap du lieu", "Thông Báo");
                else
                {
                    try
                    {
                        if (ls.taomoi())
                        {
                            Truyxuatdulieu txdl1 = new Truyxuatdulieu();
                            SqlCommand sc = new SqlCommand("select mathe from the");
                            SqlDataReader dr1 = txdl1.lay_reader(sc.CommandText);
                            while (dr1.Read())
                                mathe = dr1[0].ToString();
                            KetNoi.closeconnect();
                            if (mathe == "") mathe = "MT0000";
                            else
                            {
                                string s = mathe.Substring(2, mathe.Length - 2);
                                double i = double.Parse(s);
                                i++;
                                if (i < 10)
                                {
                                    s = "MT000" + i.ToString();
                                }
                                else if (i < 100)
                                {
                                    s = "MT00" + i.ToString();
                                }
                                else if (i < 1000)
                                {
                                    s = "MT0" + i.ToString();
                                }
                                else if (i < 10000)
                                {
                                    s = "MT" + i.ToString();
                                }
                                mathe = s;
                            }
                            string ngayhethan = Convert.ToString(DateTime.Now.Month + "/" + DateTime.Now.Day + "/" + Convert.ToInt16(DateTime.Now.Year + 3));
                            The lt = new The(mathe, tbmadg.Text, Convert.ToDateTime(tbngaylt.Text), Convert.ToDateTime(ngayhethan));
                            if (lt.taomoi())
                            {
                                ds.Tables[0].Clear();
                                load_thongtin();
                                MessageBox.Show("Đã thêm thành công", "Thông Báo");
                                btthem.Text = "Thêm";
                                close_box();
                                clear_text();
                            }
                            else MessageBox.Show("có lỗi tạo thẻ", "Thông Báo");
                        }
                        else { MessageBox.Show("có lỗi không thêm được đọc giả", "Thông Báo"); }
                    }

                    catch { MessageBox.Show("hehe"); }
                }
            }

            else
            {
                open_box();
                btthem.Text = "OK";
                tbngaylt.Text = Convert.ToString(DateTime.Now.Month + "/" + DateTime.Now.Day + "/" + DateTime.Now.Year);
                tbngaylt.Enabled = false;
            }     
        }

        private void btsua_Click(object sender, EventArgs e)
        {
            if (btsua.Text == "Sữa")
            {
                MessageBox.Show("Điền Mã độc giả cần sữa", "Thông Báo");
                tbmadg.Enabled = true;
                btsua.Text = "OK";
            }
            else if (btsua.Text == "OK")
            {
                Truyxuatdulieu txdl = new Truyxuatdulieu();
                SqlCommand sc = new SqlCommand();
                sc.CommandText = "select * from DOCGIA,LOAIDOCGIA,THE where DOCGIA.MADOCGIA='" + tbmadg.Text + "' and docgia.MALOAIDOCGIA=LOAIDOCGIA.MALOAIDOCGIA and DOCGIA.MADOCGIA=THE.MADOCGIA";
                SqlDataReader dr = txdl.lay_reader(sc.CommandText);
                while (dr.Read())
                {
                    tbtendg.Text = Convert.ToString(dr["HOTEN"]);
                    tbdiachi.Text = Convert.ToString(dr["DIACHI"]);
                    tbgioitinh.Text = Convert.ToString(dr["GIOITINH"]);
                    tbngaylt.Text = Convert.ToString(dr["NGAYCAP"]);
                    tbngaysinh.Text = Convert.ToString(dr["NGAYSINH"]);
                    cbdt.Text = Convert.ToString(dr["TENLOAIDG"]);
                }
                btsua.Text = "Chấp nhận";
                open_box();
                tbmadg.Enabled = false;
            }
            else if (btsua.Text == "Chấp nhận")
            {
                DocGia ldg = new DocGia(tbmadg.Text, cbdt.Text, tbtendg.Text, tbgioitinh.Text, Convert.ToDateTime(tbngaysinh.Text), tbdiachi.Text);
                Truyxuatdulieu txdl = new Truyxuatdulieu();
                SqlDataReader dr = txdl.lay_reader("select *from LOAIDOCGIA");
                while (dr.Read())
                {

                    if (Convert.ToString(dr["TENLOAIDG"]) == cbdt.Text)
                    {
                        ldg.set_madtdg(Convert.ToString(dr["MALOAIDOCGIA"]));
                    }
                }
                KetNoi.closeconnect();

                if (ldg.capnhat())
                {
                    MessageBox.Show("Đã thay đổi dữ liệu thành công", "Thông Báo");
                    ds.Tables[0].Clear();
                    load_thongtin();
                    clear_text();
                    close_box();
                    btsua.Text = "Sữa";
                }
                else MessageBox.Show("có lỗi kết nối", "Thông Báo");
                {
                    clear_text();
                    close_box();
                    btsua.Text = "Sữa";
                }
            }
        }

        private void btxoa_Click(object sender, EventArgs e)
        {
            if (btxoa.Text == "Xóa")
            {
                tbmadg.Enabled = true;
                btxoa.Text = "Xác Nhận";
            }

            else if (btxoa.Text == "Xác Nhận")
            {
                Truyxuatdulieu txdl = new Truyxuatdulieu();
                SqlCommand sc = new SqlCommand();
                sc.CommandText = "select * from DOCGIA,LOAIDOCGIA,THE where DOCGIA.MADOCGIA='" + tbmadg.Text + "' and docgia.MALOAIDOCGIA=LOAIDOCGIA.MALOAIDOCGIA and DOCGIA.MADOCGIA=THE.MADOCGIA";
                SqlDataReader dr = txdl.lay_reader(sc.CommandText);
                while (dr.Read())
                {
                    tbtendg.Text = Convert.ToString(dr["HOTEN"]);
                    tbdiachi.Text = Convert.ToString(dr["DIACHI"]);
                    tbgioitinh.Text = Convert.ToString(dr["GIOITINH"]);
                    tbngaylt.Text = Convert.ToString(dr["NGAYCAP"]);
                    tbngaysinh.Text = Convert.ToString(dr["NGAYSINH"]);
                    cbdt.Text = Convert.ToString(dr["TENLOAIDG"]);
                }
                btxoa.Text = "OK";
                tbmadg.Enabled = false;
            }
            else if (btxoa.Text == "OK")
            {
                DocGia ldg = new DocGia();
                ldg.set_madg(tbmadg.Text);
                The lt = new The();
                lt.set_madg(tbmadg.Text);
                if (lt.xoa())
                {
                    if (ldg.xoabo())
                    {
                        ds.Tables[0].Clear();
                        load_thongtin();
                        btxoa.Text = "Xóa";
                        MessageBox.Show("Đã xóa thành công", "Thông Báo");
                        close_box();
                        clear_text();
                    }
                    else MessageBox.Show("bị lỗi", "Thông Báo");
                }
                else MessageBox.Show("Có lỗi ko xóa được thẻ", "Thông Báo");
            }
        }

    }
}
